-
Traffic Class (TC) Field (3-bit)
- Every PCIe TLP (Transaction Layer Packet) includes a 3-bit Traffic Class field.
- Software sets this when creating a transaction.
- Higher TC = higher priority (though the actual priority scheme is implementation dependent).
-
Virtual Channels (VCs)
- Each physical PCIe port contains multiple logical buffers — one per VC.
- Packets are sorted into the right VC based on their TC.
- Think of this as “priority queues” per link.
-
VC Arbitration Logic
- Since a port may have packets waiting in multiple VCs, the port needs arbitration logic to decide which VC gets to transmit next.
- This can be a simple priority scheme (always serve VC0 first, then VC1, etc.) or a programmable policy like weighted round-robin.
-
Port Arbitration (Switch Fabric Level)
- If multiple input ports on a switch want to send data to the same output port, the switch needs to decide who wins.
- Again, this can be based on VC priority and fairness mechanisms.
-
End Goal: Deterministic Bandwidth & Latency
- With all of the above, the system can guarantee that certain streams (like video) have enough bandwidth and low enough latency to work properly.
- Other streams (like SCSI storage) will still be delivered, just not necessarily as quickly.